import cv2
import numpy as np

img = cv2.imread("./img/logo.png")
# 获取图像高度、宽度
h, w, c = img.shape
red_mask = np.zeros((h, w)).astype(np.uint8)
for i in range(h):
    for j in range(w):
        # 判断所有的像素中是否包含红色像素
        if 0 <= img[i, j, 0] <= 10 and 0 <= img[i, j, 1] <= 10 and img[i, j, 2] > 200:
            red_mask[i, j] = 255

# 如何在原图标注红色的区域(寻找轮廓)
# findContours 查找白色区域中所有的边缘轮廓点
contours, _ = cv2.findContours(red_mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 从上述的轮廓的信息中寻找到一个近似的矩形
# x, y, w, h 获取到近似矩形的左上角x,y坐标，以及矩形的宽度w和高度h
x, y, w, h = cv2.boundingRect(contours[-1])
# 绘制轮廓矩形
cv2.rectangle(img, (x, y), (x + w, y + h), color=(0, 0, 0), thickness=2)
# 绘制轮廓文字
# fontFace 文字的样式
# fontScale 文字放大缩小的倍率
cv2.putText(img,"red",(x,y),0,1.2,color=(0, 0, 0), thickness=2)

cv2.imshow("img", img)
cv2.waitKey(0)
